const {CleanWebpackPlugin} = require('clean-webpack-plugin');//把之前打包的文件全部清空 形成新的
const HtmlWebpackPlugin = require('html-webpack-plugin');//把解析出来的文件放到哪里
const path = require('path');//引入path
const isProd = process.env.NODE_ENV === 'production';//当前环境
// 处理绝对路径的函数
function resolve(dir){
    return path.resolve(__dirname,dir);
}
module.exports = {
    mode:isProd ? 'production' : 'development',//判断当前环境
    entry:{
        app:resolve('./src/main.ts')//入口文件路径
    },
    output:{
        path:resolve('dist'),//出口文件夹名字
        filename:'[name].[contenthash:8].js'//出口文件名字
    },
    // 配置loader
    module:{
        rules:[
            {
                test:/\.([cm]?ts|tsx)$/,//文件后缀名
                use:'ts-loader',//使用ts-loader解析
                include:[resolve('src')]//只找src文件夹里的
            }
        ]
    },
    // 相关插件的配置
    plugins:[
        new CleanWebpackPlugin({}),//构造函数 清空上次打包好的webpack文件 直接清空
        new HtmlWebpackPlugin({//构造函数
            template:'./public/index.html'//解析出来的文件路径 模板是template
        })
    ],
    // 解析文件
    resolve:{
        extensions:['.ts','.tsx','.js']//解析的文件类型
    },
    // 浏览器配置
    devServer:{
        open:true,//是否自动打开浏览器
        port:5070//端口号
    }
}